//#define _CRT_SECURE_NO_WARNINGS 1
//
//
//
//
//#include<iostream>
//#include<algorithm>
//
//using namespace std;
//
//const int N = 1010;
//
//int n, m;
//struct sell
//{
//    double w, v;
//    double sale;
//}s[N];
//
//bool cmp(sell a, sell b)
//{
//    return a.sale > b.sale;
//}
//int main()
//{
//    cin >> n >> m;
//    for (int i = 0; i < n; i++)
//        cin >> s[i].w;
//    for (int i = 0; i < n; i++)
//    {
//        cin >> s[i].v;
//        s[i].sale = s[i].v / s[i].w;
//    }
//    sort(s, s + n, cmp);
//    double sum2 = 0, sum1 = 0;
//    for (int i = 0; i < n; i++)
//    {
//        if (m >= s[i].w)
//        {
//            sum1 += s[i].v;
//            m -= s[i].w;
//            continue;
//        }
//        else
//        {
//            sum2 = s[i].sale * m;
//            break;
//        }
//    }
//    printf("%.2f\n", sum2 + sum1);
//    return 0;
//}